
/***********************************************************************************
 * 文件名： typedef.h
 * 版本： 1
 * 说明：
 *      MCU的类型定义文件。 统一变量类型，和常用关键字。
 * 		本文件支持中微SCMCU系列，汇春MDT系列。 
 * 修改记录：
 * 	2021/04/28: 初版。 刘言。
***********************************************************************************/
#ifndef _TYPEDEF_H_
#define _TYPEDEF_H_

#include <stdint.h> // 编译器库文件
#include <stdbool.h>
#include <stddef.h>

typedef unsigned char byte;
typedef unsigned char u8;
typedef uint16_t u16;
typedef uint32_t u32;

typedef signed char s8;
typedef int16_t s16;
typedef int32_t s32;

typedef volatile unsigned char vu8;
typedef volatile uint16_t vu16;
typedef volatile uint32_t vu32;

typedef volatile signed char vs8;
typedef volatile int16_t vs16;
typedef volatile int32_t vs32;

//非51内核定义以下以关键字兼容51代码

#define data
#define idata
#define pdata
#define xdata
#define code

//	#define bit		本MCU支持 bit

//非STM8_IAR单片机定义以下关键字兼容STM8代码

#define __far
#define __near
//    #define     __no_init
#define __eeprom

// 申明不需要初始化的变量
#define NO_INIT persistent

// 该MCU使用inline可能会有问题，因此这里不使用
// #define IN_LINE     			inline
// #define FORCE_IN_LINE			inline
// #define STATIC_IN_LINE			static inline
// #define STATIC_FORCE_IN_LINE   	static inline
#define IN_LINE
#define FORCE_IN_LINE
#define STATIC_IN_LINE static
#define STATIC_FORCE_IN_LINE static

typedef struct _tm
{
    u8 Second;
    u8 Minute;
    u8 Hour;
    u8 Day;
    u8 Week;
    u8 Month;
    u8 Year;
    u8 Zone;
} tm_t;

#endif
